interface ICollection {
  // 索引签名 [标识符：标识符类型]: 当前索引返回的类型
  // 索引签名参数类型必须是 “string”、“number”、“symbol”或模板文本类型。
  [index: string | number]: any;
  // 其他定义的类型也必须返回和上面索引签名相同的返回值类型, 因为其他属性的规则通用要适配索引签名
  length: number;
}

const names = ["abc", "cba", "nba"];
const tuple: [string, number] = ["shy", 12];
function iteratorCollecion(collection: ICollection) {
  console.log(collection[0]);
  console.log(collection[1]);
}
iteratorCollecion(names);
iteratorCollecion(tuple);
iteratorCollecion({
  name: "why",
  age: "12",
  length: 10,
});

export {};
